<?php

Class Mnotificacion extends CI_Model {
    
    /**
     * Carga los datos de las notificaciones de un cliente y lo devuelve en forma de array de objetos.
     *
     * @param integer $idCliente
     * @return mixed
     */
    function obtenerMensajes($idCliente) {
        $this->db->select("*");
        $this->db->from("notificacion");
        $this->db->where("idCliente = " . $idCliente);
        $this->db->where("borrado = 0");
        $this->db->order_by("fecha", "desc");
        $mensajes = $this->db->get();
        return $mensajes->result();
    }
    
    /**
     * Actualiza la BBDD modificando el estado de una notificacion a leido, y carga esa notificacion y lo devuelve en forma de array de objetos.
     *
     * @param integer $idNotificacion
     * @return mixed
     */
    function leerNotificacion($idNotificacion) {
        $this->db->query("update notificacion set leido = 1 where id = " . $idNotificacion);
        $this->db->select('*');
        $this->db->from('notificacion');
        $this->db->where('id = ' . $idNotificacion);
        $notificacion = $this->db->get();
        return $notificacion->result();
    }

    /**
     * Actualiza la BBDD eliminando una notificacion concreta.
     *
     * @param integer $idNotificacion
     */
    function borrarNotificacion($idNotificacion) {
        $this->db->query("update notificacion set borrado = 1 where id = " . $idNotificacion);
    }
    
    /**
     * Recibe los datos necesarios para generar una notifiacion, y los inserta en la BBDD
     *
     * @param mixed $data
     */
    function insertarNotificacion($data) {
        $sql = "INSERT INTO notificacion (text, idCliente, asunto) VALUES ('" . $data['text'] . "', " . $data['idCliente'] . ", '" . $data['asunto'] . "')";
        $this->db->query($sql);
    }
    
    /**
     * Carga la cantidad de mensajes sin leer de un cliente y lo devuelve en forma de array de objetos.
     *
     * @param integer $idCliente
     * @return mixed
     */
    function cantidadNotificaciones($idCliente) {
        $this->db->select('count(*) as cantidad', false);
        $this->db->from('notificacion');
        $this->db->where('idCliente = ' . $idCliente);
        $this->db->where('leido = 0');
        $this->db->where('borrado = 0');
        return $this->db->get()->result();
    }

}